package demo_0409;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Date;

public class Main {
    // 异常处理
    // 异常签名：方法抛出的异常
    // 异常处理：方法捕获的异常

    public static void main(String[] args) throws FileNotFoundException {
        try {
            f1();
        }catch (ArithmeticException e){
            System.out.println("捕获到异常");
        }
    }

    private static void f1() {
        f2();
    }

    private static void f2 () {
        try {
            f3();
        }   catch (FileNotFoundException e) {
            System.out.println("捕获到异常");
        }
    }

    private static void f3() throws FileNotFoundException{

            FileInputStream fis = new FileInputStream("d:/a.txt");

    }


//    public static void main1(String[] args) {
//       try {
//        f1();
//       }catch (ArithmeticException e){
//           System.out.println("捕获到异常");
//       }
//    }
//
//    private static void f1() {
//        f2();
//    }
//
//    private static void f2() {
//        f3();
//    }
//
//    private static void f3() {
//
//        try {
//            System.out.println("enter f3");
//            int a = 10 / 0;
//            Date date = null;
//            System.out.println(date.getMonth() + 1);
//            System.out.println("exit f3");
//        }/* catch (ArithmeticException e) {
//            // 捕获ArithmeticException异常,并处理,
//            // 如果没有捕获到异常，程序会继续执行
//            System.out.println("算数异常" + e.getMessage());
//            return;                                          //多个异常捕获时，只会执行第一个捕获到的异常。
//        } catch (NullPointerException e) {
//            System.out.println("空指针异常" + e.getMessage());
//        }*/ finally {   // 无论是否发生异常，都会执行finally代码块
//            System.out.println("finally");
//        }
//
//    }
}
